// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {
  const { goodsId, sellerId } = event
  
  if (!goodsId || !sellerId) {
    return {
      success: false,
      message: '缺少必要参数'
    }
  }

  try {
    // 开始事务
    const result = await db.runTransaction(async transaction => {
      // 更新商品状态为已下架
      const goodsUpdateRes = await transaction.collection('blindbox_goods')
        .doc(goodsId)
        .update({
          data: {
            status: false,
            offlineTime: db.serverDate()
          }
        })
      
      // 检查商品是否存在且更新成功
      if (goodsUpdateRes.stats.updated !== 1) {
        return transaction.rollback({
          success: false,
          message: '商品不存在或已下架'
        })
      }

      // 更新卖家的商品数量
      const userUpdateRes = await transaction.collection('users')
        .doc(sellerId)
        .update({
          data: {
            goodsCount: _.inc(-1) // 减少商品数量
          }
        })
      
      // 检查卖家是否存在且更新成功
      if (userUpdateRes.stats.updated !== 1) {
        return transaction.rollback({
          success: false,
          message: '卖家信息更新失败'
        })
      }

      // 提交事务
      return {
        success: true,
        message: '下架成功'
      }
    })

    return result
  } catch (err) {
    console.error('下架商品失败:', err)
    return {
      success: false,
      message: '下架商品失败，请重试',
      error: err.message
    }
  }
}